package file;

/**
 * \* Created with IntelliJ IDEA.
 * \* User: Administrator
 * \* Date: 2022/4/8
 * \* Time: 20:59
 * \* To change this template use File | Settings | File Templates.
 * \* Description:
 * \
 */

import java.io.*;
import java.util.Scanner;

public class Demo14 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {// 注意，如果输入是多个测试用例，请通过while循环处理多个测试用例
            String str1 = scanner.nextLine();
            String str2 = scanner.nextLine();
            if(str1.length() > str2.length()){
                levenshtein(str1,str2);
            }else{
                levenshtein(str2,str1);
            }
        }
    }
    public static void levenshtein(String str1,String str2){
        //str1是长的，str2是短的
        int count = 0;
        char[] ch1 = str1.toCharArray();
        char[] ch2 = new char[ch1.length];
        ch2 = str2.toCharArray();
        for(int i =0;i<ch1.length;i++){
            if(ch1[i] == ch2[i]){
                count++;
            }
        }
        System.out.println(count);

    }

    public static void main13(String[] args){
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int n = scanner.nextInt();
            String str = scanner.nextLine() ;
            move(str,n);
        }
    }
    //n为歌曲数量，str为指令
    public static void move(String str,int n ){
        char[] ch = str.toCharArray();
        //当前鼠标所在的位置
        int mouse = 1;
        //显示列表所在的起始位置
        int first =1;
        //歌曲总数<=4的时候，不需要翻页，只是挪动光标位置。
        if(n <= 4){
            //循环处理每一条指令
            for(int i =0;i<ch.length; i++){
                //光标在第一首歌曲上时，按Up键光标挪到最后一首歌曲；
                if(mouse == 1 && ch[i] == 'U'){
                    mouse = n;
                }
                //光标在最后一首歌曲时，按Down键光标挪到第一首歌曲。
                else if(mouse == n && ch[i] == 'D'){
                    mouse = 1;
                }
                //其他情况下用户按Up键，光标挪到上一首歌曲
                else if(ch[i] == 'U'){
                    mouse--;
                }
                //用户按Down键，光标挪到下一首歌曲
                else if(ch[i] == 'D'){
                    mouse++;
                }
            }
            //输出 ，打印当前列表
            for(int i=1; i<n;i++){
                System.out.print(i + " ");
                System.out.println(n);
                //打印当前歌曲
                System.out.println(mouse);
            }
        }
        //2. 歌曲总数大于4的时候
        else{
            for(int i =0; i<ch.length;i++){
                //屏幕显示的是第一页（即显示第1 – 4首）时，光标在第一首歌曲上，
                //用户按Up键后，屏幕要显示最后一页（即显示第7-10首歌），
                //同时光标放到最后一首歌上。
                if(first == 1 && mouse ==1 && ch[i] == 'U'){
                    //最右一页的起始位置
                    first = n - 3;
                    mouse = n;
                }
                //同样的，屏幕显示最后一页时，光标在最后一首歌曲上，
                //用户按Down键，屏幕要显示第一页，光标挪到第一首歌上
                else if(first == n -3 && mouse== n && ch[i] == 'D'){
                    first = 1;
                    mouse = 1;
                }
                //屏幕显示的不是第一页时，光标在当前屏幕显示的第一首歌曲时，用户按Up键后，
                //屏幕从当前歌曲的上一首开始显示，光标也挪到上一首歌曲。
                else if(first != 1 && mouse == first && ch[i]== 'D'){
                    first--;
                    mouse--;
                }
                //屏幕显示的不是第一页时,光标在当前屏幕的最后一首歌时的
                //按Down键，屏幕从当前歌曲的下一首开始显示，光标也挪到下一首歌曲
                else if(first != n - 3 && mouse == first + 3 && ch[i] == 'D'){
                    first++;
                    mouse++;
                }
                //其他情况，至移动光标
                else if(ch[i] == 'U'){
                    mouse--;
                }else if(ch[i] == 'D'){
                    mouse++;
                }
            }

            //输出与打印
            for(int i=first;i<first + 3; i++){
                System.out.print(i+" ");
            }
            System.out.println(first + 3);
            System.out.println(mouse);
        }
    }


        public static void main12(String[] args) {
            Scanner sc = new Scanner(System.in);
            String str1 = sc.nextLine();
            String str2 = sc.nextLine();
            //让str1指向较短的那个
            if (str1.length() <= str2.length()) {
                compare(str1, str2);
            } else {
                compare(str2, str1);
            }
        }

        public static void compare(String str1, String str2) {
            String result = "";
            for (int i = 1; i < str1.length(); i++) {
                StringBuilder sb = new StringBuilder();
                for (int j = i - 1; j < str1.length(); j++) {
                    if (str2.contains(sb.append(str1.charAt(j)))) {
                        if (sb.length() > result.length()) {
                            result = sb.toString();
                        }
                    }
                }
            }
            System.out.println(result);
        }
    public static void compare1(String str1, String str2) {
            String result = "";
            for(int i =1;i<str1.length();i++){
                StringBuilder stringBuilder = new StringBuilder();
                for(int j =i-1;j<str1.length();j++){
                    if(str2.contains(stringBuilder.append(str1.charAt(j)))){
                        if(stringBuilder.length() > result.length()){
                            result = stringBuilder.toString();
                        }
                    }
                }
        }
        System.out.println(result);
    }



    public static void main11(String[] args) throws IOException {
        // 1. 输入要扫描的文件路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要扫描的路径: ");
        String rootDirPath = scanner.next();
        System.out.println("请输入要查询的关键词: ");
        String word = scanner.next();
        File rootDir = new File(rootDirPath);
        if (!rootDir.isDirectory()) {
            System.out.println("输入的路径非法!");
            return;
        }
        // 2. 递归的进行遍历
        scanDir(rootDir, word);
    }

    private static void scanDir(File rootDir, String word) throws IOException {
        // 1. 先列出 rootDir 中都有哪些内容
        File[] files = rootDir.listFiles();
        if (files == null) {
            return;
        }
        // 2. 遍历每个元素, 针对普通文件和目录分别进行处理.
        for (File f : files) {
            if (f.isFile()) {
                // 针对文件进行内容查找
                if (containsWord(f, word)) {
                    System.out.println(f.getCanonicalPath());
                }
            } else if (f.isDirectory()) {
                // 针对目录进行递归
                scanDir(f, word);
            }
        }
    }

    private static boolean containsWord(File f, String word) {
        // 写代码, 慎重使用缩写!!! 缩写的可读性会比较差. (一些业界常见缩写, 可以用, 不要随便滥用)
        StringBuilder stringBuilder = new StringBuilder();
        // 把 f 中的内容都读出来, 放到一个 StringBuilder 中
        try (Reader reader = new FileReader(f)) {
            char[] buffer = new char[1024];
            while (true) {
                int len = reader.read(buffer);
                if (len == -1) {
                    break;
                }
                // 把这一段读到的结果, 放到 StringBuilder 中
                stringBuilder.append(buffer, 0, len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        // indexOf 返回的是子串的下标. 如果 word 在 stringBuilder 中不存在, 则返回下标为 -1
        return stringBuilder.indexOf(word) != -1;
    }
}
